package com.sync.syncmasterdata.product.pojo.bip;


import lombok.Builder;
import lombok.Data;

import java.util.List;

/**
 * bip 主物料复合对象
 */
@Data
@Builder
public class ProductForBip {
    @Builder.Default
    private String account = "01";
    @Builder.Default
    private String billtype = "material";
    @Builder.Default
    private String sender = "syncMaster";
    @Builder.Default
    private String isexchange = "Y";
    @Builder.Default
    private String replace = "Y";
    @Builder.Default
    private String groupcode = "BS";
    @Builder.Default
    private String orgcode = "BS";
    /**
     * 实例对象
     */
    private ProductBill bill;

    @Data
    @Builder
    public static class ProductBill {
        private ProductBillHead billhead;

        @Data
        public static class ProductBillHead{
            //必填区域
            /**
             * 所属集团 必填 默认 BS
             */
            private String pk_group="BS";
            /**
             * 客户编码 使用系统配置
             */
//    private String code ;
            /**
             * 所属组织必填 默认BS
             */
            private String pk_org="BS";
            /**
             * 物料分类 必填 编码
             */
            private String pk_marbasclass;
            /**
             * 启用状态 必填
             */
            private Integer enablestate = 2;
            /**
             * 产品编码
             */
            private String code;
            /**
             *物料 中文名称 必填
             */
            private String name;
            /**
             * 英文名称
             */
            private String ename;

            /**
             * 物料单位 必填 放bip编码
             */
            private String pk_measdoc;
            /**
             * 物料税类 必填 放bip税类编码
             */
            private String pk_mattaxes;
            /**
             * 物料规格
             */
            private String materialspec;
            /**
             * 型号
             */
            private String materialtype;
            /**
             * todo:生产厂家\品牌\产地
             * 生产厂家 需要使用自定义档案的字段 BD006_0xx
             */
            private String BD006_0xx;
            /**
             * 品牌
             */
            /**
             * 产地
             */
            /**
             * 产品簇
             */
            private String productfamily = "N";
            /**
             * 特征类别
             */
            private String featureclass = "N";
            /**
             * 服务类 (FW确认是否需要调整Y)
             */
            private String fee = "N";
            /**
             * 特征件
             */
            private String isfeature = "N";
            /**
             * 促销产品
             */
            private String ishproitems = "N";
            /**
             * 是否电子销售
             */
            private String electronicsale = "N";
            /**
             * 成套件
             */
            private String setpartsflag = "N";
            /**
             * 是否医药物料 用不上 配置默认值
             */
            private String bmedicine_148="N";
            /**
             * 	多少标准存储单位
             */
            private String storeunitnum = "0.00";
            /**
             * 出库关闭下容差
             */
            private String outcloselowerlimit="0.00";
            /**
             * 出库容差
             */
            private String outtolerance = "0.00";
            /**
             * 入库容差
             */
            private String intolerance="0.00";
            /**
             * 国家地区 使用编码 中国=CN
             */
            private String pk_country="CN";
            /**
             * 数据格式 默认值 = ZH-CN
             */
            private String pk_format = "ZH-CN";
            /**
             * 时区 默认值 =P0800
             */
            private String pk_timezone = "P0800";
            //需要放置主表自定义字段
            /**
             * 杰毅物料编码
             */
            private String materialshortname;
            /**
             * 联兆物料编码 (原 助记码)
             */
            private String materialmnecode;
            /**
             * 金筛查物料编码 (原 图号)
             */
            private String graphid;
            /**
             * 是否需要COA Y N
             */
            private String def1;
            /**
             * 危化品类别 自定义档案(注意编号) 通过枚举转换
             */
            private String def2;
            /**
             * 验收方法 文本
             */
            private String def3;
            /**
             * 保存条件
             */
            private String def4;
            /**
             * 检验依据文件编号 文本
             */
            private String def5;
            /**
             * 源 枚举下拉
             */
            private String def6;
            /**
             * 生产企业
             */
            private String vmanufacturer_148;
            /**
             * 地域
             */
            private String prodarea;
            /**
             * 医疗器械 自定义档案 一类,二类,三类,非医疗
             */
            private String def10;
            /**
             * 辅助属性结构
             */
            private String pk_marasstframe="1001A21000000003XKVZ";


            /**
             * 辅助计量管理(主卡片中的子表)
             */
            ProductMaterialConvert materialconvert;
        }

        /**
         * 辅助单位信息
         */
        @Data
        @Builder
        public static class ProductMaterialConvert{
            private List<ProductMaterialConvertItem> item;

            @Data
            public static class ProductMaterialConvertItem{
                /**
                 * 必填区域
                 */
                /**
                 * 辅助计量单位 bip编码 必填 一般和主物料保持一致
                 */
                private String pk_measdoc;

                /**
                 * 主计量单位除以辅助单位 默认1/1
                 */
                private String measrate;
                /**
                 * 固定换算
                 */
                private String fixedflag = "N";
                /**
                 * 结存
                 */
                private String isstorebalance = "Y";
                /**
                 * 采购默认单位
                 */
                private String ispumeasdoc="N";
                /**
                 * 生产
                 */
                private String isprodmeasdoc="N";
                /**
                 * 库存
                 */
                private String isstockmeasdoc="N";
                /**
                 * 销售
                 */
                private String issalemeasdoc="N";
                /**
                 * 零售
                 */
                private String isretailmeasdoc="N";
                /**
                 * 件数管理
                 */
                private String ispiecemangage="N";
            }
        }
    }
}
